software proper code application thin-client c++ development software development java programming code radius3 j2ee programming defects .net